
class Camera
{
	public:
	Vector3 GetPosition(){return Position;}
	//Vector3 GetLookAt(){return Position + Vector3(cos(LookAtPhi) * sin(LookAtTheta), sin(LookAtPhi) * sin(LookAtTheta), cos(LookAtTheta));}
	//Vector3 GetLookAt(){return Position + Vector3(sin(LookAtPhi) * sin(LookAtTheta), cos(LookAtPhi) * sin(LookAtTheta), cos(LookAtTheta));}
	Vector3 GetLookAt(){return Position + Vector3(cos(LookAtPhi) * sin(LookAtTheta), cos(LookAtTheta), sin(LookAtPhi) * sin(LookAtTheta));}
	Vector3 GetDirection(){return Vector3(cos(LookAtPhi) * sin(LookAtTheta), cos(LookAtTheta), sin(LookAtPhi) * sin(LookAtTheta));}
	
	void TurnY(float ThetaIn){LookAtTheta -= ThetaIn;}
	void TurnX(float PhiIn){LookAtPhi -= PhiIn;}
	void Move(float z_diff){Position = Position + GetDirection() * z_diff;}
	Camera()
	{
		Position = Vector3(0.0f,0.0f,-5.0f);
		LookAtPhi = M_PI / 2.0f;
		LookAtTheta =  M_PI / 2.0f;
	}
	protected:
	private:
	Vector3 Position;
	float LookAtPhi, LookAtTheta;
};
